package basic

import "fmt"

func Point() {
	//a := 10
	//modify1(a)
	//fmt.Println(a) // 10
	//modify2(&a)
	//fmt.Println(a) // 100

	//new make引出
	//var a *int
	a := new(int)
	*a = 100
	fmt.Println(*a)

	//var b map[string]int
	//可以使用new和make来创建map类型的变量，但是它们之间有很明显的不同，使用new来创建map时，
	//返回的内容是一个指针，这个指针指向了一个所有字段全为0的值map对象，需要初始化后才能使用，
	//而使用make来创建map时，返回的内容是一个引用，可以直接使用。
	b := make(map[string]int)
	c := new(map[string]int)
	*c = map[string]int{}
	(*c)["111"] = 10
	b["沙河娜扎"] = 100
	fmt.Println(b, c)
}

func modify1(x int) {
	x = 100
}

func modify2(x *int) {
	*x = 100
}
